home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!aplcen!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!wuarchive!cs.utexas.edu!sun-barr!newstop!sun!parns.nsc.com
- From: michael@parns.nsc.com (Michael Wagnitz)
- Newsgroups: comp.sources.x
- Subject: REPOST: v08i099: xmail, Patch2, Part04/05
- Message-ID: <141678@sun.Eng.Sun.COM>
- Date: 31 Aug 90 16:44:15 GMT
- Sender: news@sun.Eng.Sun.COM
- Lines: 1448
- Approved: argv@sun.com
-
- Submitted-by: michael@parns.nsc.com (Michael Wagnitz)
- Posting-number: Volume 8, Issue 99
- Archive-name: xmail/patch2.04
-
- Let's try this again...
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 4 (of 5)."
- # Contents: Patch.02d
- # Wrapped by michael@harley on Mon Aug 27 12:47:27 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'Patch.02d' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Patch.02d'\"
- else
- echo shar: Extracting \"'Patch.02d'\" \(52848 characters\)
- sed "s/^X//" >'Patch.02d' <<'END_OF_FILE'
- X! markIndex(" ");
- X }
- X }
- X break;
- X--- 246,252 ----
- X sprintf(tmp, "%d", msgnum);
- X XtFree(msg);
- X msg = QueryMail(tmp);
- X! markIndex("> ");
- X }
- X }
- X break;
- X***************
- X*** 256,268 ****
- X markIndex("D");
- X num = msgnum;
- X msgnum = index_handler(++msgnum, 0); /* next msg */
- X! if (msgnum != num) markIndex(" ");
- X }
- X if (*Command == 'u') {
- X c = QueryMail("=");
- X sscanf(c, "%d", &msgnum);
- X XtFree(c);
- X! iw = WidgetOf(WidgetOf(toplevel, "topBox"),"indexWindow");
- X if (TextGetLastPos(iw) < (XtTextPosition) 4) {
- X c = QueryMail("h");
- X writeText(iw, c, FALSE);
- X--- 269,282 ----
- X markIndex("D");
- X num = msgnum;
- X msgnum = index_handler(++msgnum, 0); /* next msg */
- X! if (msgnum != num)
- X! markIndex("> ");
- X }
- X if (*Command == 'u') {
- X c = QueryMail("=");
- X sscanf(c, "%d", &msgnum);
- X XtFree(c);
- X! iw = WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow");
- X if (TextGetLastPos(iw) < (XtTextPosition) 4) {
- X c = QueryMail("h");
- X writeText(iw, c, FALSE);
- X***************
- X*** 269,275 ****
- X XtFree(c);
- X }
- X msgnum = index_handler(msgnum, 1);
- X! markIndex(" ");
- X }
- X c = QueryMail("file"); /* resets current msg to 1 */
- X (void) UpdateTitleBar(c);
- X--- 283,289 ----
- X XtFree(c);
- X }
- X msgnum = index_handler(msgnum, 1);
- X! markIndex("> ");
- X }
- X c = QueryMail("file"); /* resets current msg to 1 */
- X (void) UpdateTitleBar(c);
- X***************
- X*** 281,295 ****
- X /*
- X ** In response to a request to view new mail, first reset the mailbox flag.
- X ** If mail came back with an error, complain to the user. Otherwise, clear
- X! ** the Newmail command button highlighting, and (if it exists) destroy the
- X! ** current folder popup list. Then display any new mail text.
- X */
- X case C_NEWMAIL:
- X button = WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"),
- X "commandPanel"), "Folder");
- X UnsetNewmail(button, NULL, NULL);
- X- if (popup = WidgetOf(button, "popupList"))
- X- XtDestroyWidget(popup);
- X if (O_BELL == match(output_pattern, msg)) {
- X if (strncmp(msg, "No mail for ", 12) == 0) {
- X Bell("No mail in system mailbox\n");
- X--- 295,306 ----
- X /*
- X ** In response to a request to view new mail, first reset the mailbox flag.
- X ** If mail came back with an error, complain to the user. Otherwise, clear
- X! ** the Newmail command button highlighting. Then display any new mail text.
- X */
- X case C_NEWMAIL:
- X button = WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"),
- X "commandPanel"), "Folder");
- X UnsetNewmail(button, NULL, NULL);
- X if (O_BELL == match(output_pattern, msg)) {
- X if (strncmp(msg, "No mail for ", 12) == 0) {
- X Bell("No mail in system mailbox\n");
- X***************
- X*** 316,322 ****
- X sprintf(tmp, "%d", msgnum);
- X XtFree(msg);
- X msg = QueryMail(tmp);
- X! markIndex(" "); /* 'cause we just read it */
- X }
- X }
- X }
- X--- 327,333 ----
- X sprintf(tmp, "%d", msgnum);
- X XtFree(msg);
- X msg = QueryMail(tmp);
- X! markIndex("> "); /* 'cause we just read it */
- X }
- X }
- X }
- X***************
- X*** 419,424 ****
- X--- 430,446 ----
- X if (strcmp(&output[j], MailPrompt) == 0) {
- X output[j] = '\0'; /* Drop prompt from end of text */
- X break; /* and return from read routine */
- X+ }
- X+
- X+ if (!strcmp(Command,"Start")) { /* see if somehow missed the prompt */
- X+ j = strlen(output) - 3; /* no accidents allowed here either */
- X+ if (j < 0) j = 0; /* no string references before zero */
- X+ if (strcmp(&output[j], "\n& ") == 0) { /* if default mail prompt */
- X+ output[++j] = '\0'; /* drop prompt from end of string */
- X+ XtFree(MailPrompt); /* intended prompt is now bogus */
- X+ MailPrompt = XtNewString("& "); /* reset the mail prompt */
- X+ break; /* and return from read routine */
- X+ }
- X }
- X
- X if (O_BELL == match(output_pattern,output) && !strcmp(Command,"Start"))
- X*** ../v1.1/utils.c Mon Jun 4 09:48:42 1990
- X--- utils.c Mon Aug 27 11:09:22 1990
- X***************
- X*** 32,38 ****
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X! * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * The following software modules were created and are Copyrighted by National
- X--- 32,38 ----
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X! * OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * The following software modules were created and are Copyrighted by National
- X***************
- X*** 72,95 ****
- X char *s;
- X {
- X XtTextBlock textblock;
- X! XtTextPosition pos;
- X Widget w = WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow");
- X
- X
- X! pos = XtTextGetInsertionPoint(w) + 1;
- X
- X! XtTextSetInsertionPoint(w, pos);
- X
- X textblock.firstPos = 0;
- X! textblock.length = 1;
- X textblock.ptr = s;
- X textblock.format = FMT8BIT;
- X
- X! XtTextReplace(w, pos, pos + 1, &textblock);
- X
- X XtTextSetInsertionPoint(w, pos);
- X-
- X- SetSelect(w, NULL, NULL, NULL);
- X } /* markIndex */
- X
- X
- X--- 72,110 ----
- X char *s;
- X {
- X XtTextBlock textblock;
- X! XtTextPosition pos, old;
- X Widget w = WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow");
- X+ char *p;
- X+ int size = strlen(s);
- X
- X
- X! pos = XtTextGetInsertionPoint(w);
- X
- X! if (*s == '>') /* first, remove any existing pointer */
- X! if (p = index(IndexBuf, '>')) {
- X! old = p - IndexBuf;
- X! XtTextSetInsertionPoint(w, old);
- X! textblock.firstPos = 0;
- X! textblock.length = 1;
- X! textblock.ptr = " ";
- X! textblock.format = FMT8BIT;
- X! XtTextReplace(w, old, old + 1, &textblock);
- X! }
- X
- X+ for (p = IndexBuf + pos; p > IndexBuf && *(p - 1) != '\n'; p--);
- X+
- X+ pos = (p - IndexBuf);
- X+
- X+ XtTextSetInsertionPoint(w, (*s == '>') ? pos : ++pos);
- X+
- X textblock.firstPos = 0;
- X! textblock.length = size;
- X textblock.ptr = s;
- X textblock.format = FMT8BIT;
- X
- X! XtTextReplace(w, pos, pos + size, &textblock);
- X
- X XtTextSetInsertionPoint(w, pos);
- X } /* markIndex */
- X
- X
- X***************
- X*** 186,192 ****
- X String msg;
- X {
- X Arg args[1];
- X! char *p, *index();
- X char buf[BUFSIZ];
- X int worthy = 0; /* only msgs with ending newline are */
- X
- X--- 201,207 ----
- X String msg;
- X {
- X Arg args[1];
- X! char *p;
- X char buf[BUFSIZ];
- X int worthy = 0; /* only msgs with ending newline are */
- X
- X*** ../v1.1/windows.c Mon Jun 4 09:48:44 1990
- X--- windows.c Mon Aug 27 11:09:22 1990
- X***************
- X*** 32,38 ****
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X! * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * The following software modules were created and are Copyrighted by National
- X--- 32,38 ----
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X! * OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * The following software modules were created and are Copyrighted by National
- X***************
- X*** 50,56 ****
- X
- X
- X #include "global.h"
- X! #include "Mailwatch.h"
- X #include "patchlevel.h"
- X #include "icon.mail"
- X #include "national.bm"
- X--- 50,56 ----
- X
- X
- X #include "global.h"
- X! #include "MailwatchP.h"
- X #include "patchlevel.h"
- X #include "icon.mail"
- X #include "national.bm"
- X***************
- X*** 164,170 ****
- X XtSetArg(args[3], XtNtranslations, XtParseTranslationTable(b_Trans));
- X for (indx = 0; list[indx] != NULL; indx++) {
- X strcpy(tag, list[indx]->label); /* set window name by label */
- X! if ((c = (char *)index(tag, ' '))) *c = '\0'; /* first word only */
- X sprintf(trans, "%-*.*s", j, j, list[indx]->label);
- X if (Labels[indx]) /* add accel. note if needed */
- X strcat(trans, Labels[indx]);
- X--- 164,170 ----
- X XtSetArg(args[3], XtNtranslations, XtParseTranslationTable(b_Trans));
- X for (indx = 0; list[indx] != NULL; indx++) {
- X strcpy(tag, list[indx]->label); /* set window name by label */
- X! if ((c = index(tag, ' '))) *c = '\0'; /* first word only */
- X sprintf(trans, "%-*.*s", j, j, list[indx]->label);
- X if (Labels[indx]) /* add accel. note if needed */
- X strcat(trans, Labels[indx]);
- X***************
- X*** 284,292 ****
- X b1.label = "Newmail"; b1.func = (XtCallbackProc) DoIt; b1.data = "file %";
- X #ifdef SUNOS_4
- X b2.label = "inc (no commit)"; b2.func = (XtCallbackProc) DoIt; b2.data = "inc";
- X! list[0] = &b1; list[1] = &b2; list[2] = NULL;
- X #else
- X! list[0] = &b1; list[1] = NULL;
- X #endif
- X AddButton(parent, "Newmail", "DoCmd", "file %", list, NewMail_Help_Text);
- X
- X--- 284,294 ----
- X b1.label = "Newmail"; b1.func = (XtCallbackProc) DoIt; b1.data = "file %";
- X #ifdef SUNOS_4
- X b2.label = "inc (no commit)"; b2.func = (XtCallbackProc) DoIt; b2.data = "inc";
- X! b3.label = "Drop Folders"; b3.func = (XtCallbackProc) DropIt; b3.data = "drop";
- X! list[0] = &b1; list[1] = &b2; list[2] = &b3; list[3] = NULL;
- X #else
- X! b2.label = "Drop Folders"; b2.func = (XtCallbackProc) DropIt; b2.data = "drop";
- X! list[0] = &b1; list[1] = &b2; list[2] = NULL;
- X #endif
- X AddButton(parent, "Newmail", "DoCmd", "file %", list, NewMail_Help_Text);
- X
- X***************
- X*** 388,395 ****
- X <Key>BackSpace: DeleteChar()\n\
- X <Key>Linefeed: DoNothing()\n\
- X <Key>Return: DoNothing()\n\
- X! <Key>: CheckInsert() insert-char()";
- X
- X XtSetArg(args[0], XtNwidth, XMail.fileBoxWidth);
- X XtSetArg(args[1], XtNfont, TextFontStr);
- X XtSetArg(args[2], XtNborderWidth, 0);
- X--- 390,400 ----
- X <Key>BackSpace: DeleteChar()\n\
- X <Key>Linefeed: DoNothing()\n\
- X <Key>Return: DoNothing()\n\
- X! <Key>: CheckInsert() insert-char()\n\
- X! <Btn1Down>: select-start()\n\
- X! <Btn2Down>: CheckInsert() insert-selection(PRIMARY, CUT_BUFFER0)";
- X
- X+
- X XtSetArg(args[0], XtNwidth, XMail.fileBoxWidth);
- X XtSetArg(args[1], XtNfont, TextFontStr);
- X XtSetArg(args[2], XtNborderWidth, 0);
- X***************
- X*** 449,454 ****
- X--- 454,461 ----
- X Arg args[6];
- X Widget w;
- X
- X+ static String Trans = "#override\n\
- X+ :<Key>Linefeed: MenuPopdown(help)";
- X
- X XtSetArg(args[0], XtNborderWidth, 3);
- X w = XtCreatePopupShell("help", overrideShellWidgetClass, parent, args, 1);
- X***************
- X*** 458,464 ****
- X XtSetArg(args[2], XtNfont, HelpFontStr);
- X XtSetArg(args[3], XtNeditType, (XtArgVal) XttextRead);
- X XtSetArg(args[4], XtNtextOptions, wordBreak);
- X! XtCreateManagedWidget("helpWindow", asciiStringWidgetClass, w, args, 5);
- X } /* CreateHelpWindow */
- X
- X
- X--- 465,472 ----
- X XtSetArg(args[2], XtNfont, HelpFontStr);
- X XtSetArg(args[3], XtNeditType, (XtArgVal) XttextRead);
- X XtSetArg(args[4], XtNtextOptions, wordBreak);
- X! XtSetArg(args[5], XtNtranslations, XtParseTranslationTable(Trans));
- X! XtCreateManagedWidget("helpWindow", asciiStringWidgetClass, w, args, 6);
- X } /* CreateHelpWindow */
- X
- X
- X***************
- X*** 470,482 ****
- X Widget parent;
- X {
- X Arg args[8];
- X Widget w;
- X
- X! static String translations =
- X! "<Key>: DoNothing() \n\
- X! <Btn1Down>: select-start() SetSelect() \n\
- X! <Btn3Down>: select-start() SetSelect() \n\
- X! <Btn3Up>: DoSelected(p)";
- X
- X XtSetArg(args[0], XtNheight, XMail.indexHeight);
- X XtSetArg(args[1], XtNfont, TextFontStr);
- X--- 478,508 ----
- X Widget parent;
- X {
- X Arg args[8];
- X+ int n;
- X Widget w;
- X
- X! static String translations = "\
- X! Ctrl<Key>L: redraw-display() \n\
- X! Ctrl<Key>V: next-page() \n\
- X! Ctrl<Key>Z: scroll-one-line-up() \n\
- X! Meta<Key>V: previous-page() \n\
- X! Meta<Key>Z: scroll-one-line-down() \n\
- X! Meta<Key>\<: beginning-of-file() \n\
- X! Meta<Key>\>: end-of-file() \n\
- X! None <Key>Return: scroll-one-line-up() \n\
- X! None <Key>space: next-page() \n\
- X! None <Key>G: end-of-file() \n\
- X! None <Key>b: previous-page() \n\
- X! None <Key>j: scroll-one-line-up() \n\
- X! None <Key>k: scroll-one-line-down() \n\
- X! None <Key>-: scroll-one-line-down() \n\
- X! None <Key>p: beginning-of-file() \n\
- X! None <Key>\': beginning-of-file() \n\
- X! <Btn1Down>: select-start() SetSelect() \n\
- X! <Btn1Motion>: extend-adjust() \n\
- X! <Btn1Up>: extend-end(PRIMARY, CUT_BUFFER0) \n\
- X! <Btn3Down>: select-start() SetSelect() \n\
- X! <Btn3Up>: DoSelected(p)";
- X
- X XtSetArg(args[0], XtNheight, XMail.indexHeight);
- X XtSetArg(args[1], XtNfont, TextFontStr);
- X***************
- X*** 485,492 ****
- X XtSetArg(args[4], XtNeditType, (XtArgVal) XttextEdit);
- X XtSetArg(args[5], XtNtextOptions, scrollVertical | wordBreak);
- X XtSetArg(args[6], XtNtranslations, XtParseTranslationTable(translations));
- X
- X! w = XtCreateManagedWidget("indexWindow",asciiStringWidgetClass,parent,args,7);
- X
- X AddHelpText(w, "index", Index_Help_Text);
- X } /* CreateIndexWindow */
- X--- 511,522 ----
- X XtSetArg(args[4], XtNeditType, (XtArgVal) XttextEdit);
- X XtSetArg(args[5], XtNtextOptions, scrollVertical | wordBreak);
- X XtSetArg(args[6], XtNtranslations, XtParseTranslationTable(translations));
- X+ n = 7;
- X+ #if XtSpecificationRelease >= 4
- X+ XtSetArg(args[n], XtNdisplayCaret, (XtArgVal) False); n++;
- X+ #endif
- X
- X! w = XtCreateManagedWidget("indexWindow",asciiStringWidgetClass,parent,args,n);
- X
- X AddHelpText(w, "index", Index_Help_Text);
- X } /* CreateIndexWindow */
- X***************
- X*** 537,543 ****
- X {
- X Arg args[4];
- X Widget icon, mb, topbox;
- X! int x, y, width, height;
- X /*
- X ** Special added actions
- X */
- X--- 567,573 ----
- X {
- X Arg args[4];
- X Widget icon, mb, topbox;
- X! int n, x, y;
- X /*
- X ** Special added actions
- X */
- X***************
- X*** 554,559 ****
- X--- 584,590 ----
- X {"SetMenu", (XtActionProc) SetMenu},
- X {"DoNothing", (XtActionProc) DoNothing},
- X {"DoSelected", (XtActionProc) DoSelected},
- X+ {"SavePos", (XtActionProc) SavePos},
- X {"SetAliases", (XtActionProc) SetAliases},
- X {"SetCursor", (XtActionProc) SetCursor},
- X {"SetDirectory", (XtActionProc) SetDirectory},
- X***************
- X*** 566,571 ****
- X--- 597,603 ----
- X {"MyNotify", (XtActionProc) MyNotify},
- X {"NextField", (XtActionProc) NextField},
- X {"PrintMsg", (XtActionProc) PrintMsg},
- X+ {"SetPos", (XtActionProc) SetPos},
- X {"Quit", (XtActionProc) Quit},
- X {NULL, NULL}
- X };
- X***************
- X*** 588,602 ****
- X /*
- X ** Create an icon window for the mailwatchWidget
- X */
- X- x = y = 0;
- X- if (XMail.iconGeometry)
- X- XParseGeometry(XMail.iconGeometry, &x, &y, &width, &height);
- X-
- X XtSetArg(args[0], XtNwidth, (XtArgVal) mail_width);
- X XtSetArg(args[1], XtNheight, (XtArgVal) mail_height);
- X! XtSetArg(args[2], XtNx, (XtArgVal) x);
- X! XtSetArg(args[3], XtNy, (XtArgVal) y);
- X! icon = XtCreateWidget("icon", applicationShellWidgetClass, toplevel, args, 4);
- X mb = XtCreateManagedWidget("mailbox", mailwatchWidgetClass, icon, NULL, 0);
- X XtAddCallback(mb, XtNcallback, SetNewmail, NULL);
- X } /* CreateSubWindows */
- X--- 620,634 ----
- X /*
- X ** Create an icon window for the mailwatchWidget
- X */
- X XtSetArg(args[0], XtNwidth, (XtArgVal) mail_width);
- X XtSetArg(args[1], XtNheight, (XtArgVal) mail_height);
- X! n = 2;
- X! if (XMail.iconGeometry) {
- X! ParseIconGeometry(XMail.iconGeometry, &x, &y);
- X! XtSetArg(args[n], XtNx, (XtArgVal) x); n++;
- X! XtSetArg(args[n], XtNy, (XtArgVal) y); n++;
- X! }
- X! icon = XtCreateWidget("icon", applicationShellWidgetClass, toplevel, args, n);
- X mb = XtCreateManagedWidget("mailbox", mailwatchWidgetClass, icon, NULL, 0);
- X XtAddCallback(mb, XtNcallback, SetNewmail, NULL);
- X } /* CreateSubWindows */
- X***************
- X*** 609,625 ****
- X CreateTextWindow(parent)
- X Widget parent;
- X {
- X! Arg args[4];
- X Widget tw;
- X
- X
- X XtSetArg(args[0], XtNmin, XMail.textMinHeight);
- X XtSetArg(args[1], XtNheight, XMail.textHeight);
- X XtSetArg(args[2], XtNfont, TextFontStr);
- X XtSetArg(args[3], XtNtextOptions, scrollVertical | wordBreak);
- X! tw = XtCreateManagedWidget("textWindow",asciiStringWidgetClass,parent,args,4);
- X
- X AddHelpText(tw, "text", Text_Help_Text);
- X } /* CreateTextWindow */
- X
- X
- X--- 641,779 ----
- X CreateTextWindow(parent)
- X Widget parent;
- X {
- X! Arg args[5];
- X! int indx;
- X Widget tw;
- X+ #ifndef SUNOS_4
- X+ static String Trans = "\
- X+ Ctrl <Key>L: redraw-display() \n\
- X+ Ctrl <Key>V: next-page() \n\
- X+ Ctrl <Key>Z: scroll-one-line-up() \n\
- X+ Meta <Key>V: previous-page() \n\
- X+ Meta <Key>Z: scroll-one-line-down() \n\
- X+ Meta <Key>\<: beginning-of-file() \n\
- X+ Meta <Key>\>: end-of-file() \n\
- X+ None <Key>Linefeed: MenuPopdown(help) \n\
- X+ None <Key>Return: scroll-one-line-up() \n\
- X+ None <Key>-: scroll-one-line-down() \n\
- X+ None <Key>\': beginning-of-file() \n\
- X+ None <Key>space: next-page() \n\
- X+ None <Key>a: DoReply(a) \n\
- X+ None <Key>b: previous-page() \n\
- X+ None <Key>c: DoSave(c) \n\
- X+ None <Key>d: DoSelected(d) \n\
- X+ None <Key>f: DoSelected(P) \n\
- X+ None <Key>j: scroll-one-line-up() \n\
- X+ None <Key>k: scroll-one-line-down() \n\
- X+ None <Key>m: DoReply(s) \n\
- X+ None <Key>n: DoSelected(n) \n\
- X+ None <Key>p: DoSelected(-) \n\
- X+ None <Key>q: Quit(q) \n\
- X+ None <Key>r: DoSelected(p) \n\
- X+ None <Key>s: DoSave(s) \n\
- X+ None <Key>u: DoSelected(u) \n\
- X+ None <Key>w: DoSave(w) \n\
- X+ None <Key>x: Quit(x) \n\
- X+ <Key>A: DoReply(A) \n\
- X+ <Key>C: DoSave(C) \n\
- X+ <Key>F: DoReply(S) \n\
- X+ <Key>G: end-of-file() \n\
- X+ <Key>M: DoReply(r) \n\
- X+ <Key>N: DoCmd(file %) \n\
- X+ <Key>P: PrintMsg() \n\
- X+ <Key>R: DoReply(R) \n\
- X+ <Key>S: DoSave(S) \n\
- X+ <Key>?: SetHelp(text2) \n\
- X+ <Btn1Down>: select-start() \n\
- X+ <Btn1Motion>: extend-adjust() \n\
- X+ <Btn1Up>: extend-end(PRIMARY, CUT_BUFFER0) \n\
- X+ <Btn2Down>: insert-selection(PRIMARY, CUT_BUFFER0) \n\
- X+ <Btn3Down>: extend-start() \n\
- X+ <Btn3Motion>: extend-adjust() \n\
- X+ <Btn3Up>: extend-end(PRIMARY, CUT_BUFFER0)";
- X+ #else
- X+ static String Trans = "\
- X+ Ctrl <Key>L: redraw-display() \n\
- X+ Ctrl <Key>V: next-page() \n\
- X+ Ctrl <Key>Z: scroll-one-line-up() \n\
- X+ Meta <Key>V: previous-page() \n\
- X+ Meta <Key>Z: scroll-one-line-down() \n\
- X+ Meta <Key>\<: beginning-of-file() \n\
- X+ Meta <Key>\>: end-of-file() \n\
- X+ Shift <Key>A: DoReply(A) \n\
- X+ Shift <Key>C: DoSave(C) \n\
- X+ Shift <Key>F: DoReply(S) \n\
- X+ Shift <Key>G: end-of-file() \n\
- X+ Shift <Key>M: DoReply(r) \n\
- X+ Shift <Key>N: DoCmd(file %) \n\
- X+ Shift <Key>P: PrintMsg() \n\
- X+ Shift <Key>R: DoReply(R) \n\
- X+ Shift <Key>S: DoSave(S) \n\
- X+ None <Key>Linefeed: MenuPopdown(help) \n\
- X+ None <Key>Return: scroll-one-line-up() \n\
- X+ None <Key>-: scroll-one-line-down() \n\
- X+ None <Key>\': beginning-of-file() \n\
- X+ None <Key>space: next-page() \n\
- X+ None <Key>a: DoReply(a) \n\
- X+ None <Key>b: previous-page() \n\
- X+ None <Key>c: DoSave(c) \n\
- X+ None <Key>d: DoSelected(d) \n\
- X+ None <Key>f: DoSelected(P) \n\
- X+ None <Key>j: scroll-one-line-up() \n\
- X+ None <Key>k: scroll-one-line-down() \n\
- X+ None <Key>m: DoReply(s) \n\
- X+ None <Key>n: DoSelected(n) \n\
- X+ None <Key>p: DoSelected(-) \n\
- X+ None <Key>q: Quit(q) \n\
- X+ None <Key>r: DoSelected(p) \n\
- X+ None <Key>s: DoSave(s) \n\
- X+ None <Key>u: DoSelected(u) \n\
- X+ None <Key>w: DoSave(w) \n\
- X+ None <Key>x: Quit(x) \n\
- X+ <Key>?: SetHelp(text2) \n\
- X+ <Btn1Down>: select-start() \n\
- X+ <Btn1Motion>: extend-adjust() \n\
- X+ <Btn1Up>: extend-end(PRIMARY, CUT_BUFFER0) \n\
- X+ <Btn2Down>: insert-selection(PRIMARY, CUT_BUFFER0) \n\
- X+ <Btn3Down>: extend-start() \n\
- X+ <Btn3Motion>: extend-adjust() \n\
- X+ <Btn3Up>: extend-end(PRIMARY, CUT_BUFFER0)";
- X+ #endif
- X
- X+ #if XtSpecificationRelease >= 4
- X+ static String trans_2 = "#override \
- X+ Ctrl <Key>R: search(backward) \n\
- X+ Ctrl <Key>S: search(forward)";
- X+ #endif
- X
- X XtSetArg(args[0], XtNmin, XMail.textMinHeight);
- X XtSetArg(args[1], XtNheight, XMail.textHeight);
- X XtSetArg(args[2], XtNfont, TextFontStr);
- X XtSetArg(args[3], XtNtextOptions, scrollVertical | wordBreak);
- X! XtSetArg(args[4], XtNtranslations, XtParseTranslationTable(Trans));
- X! tw = XtCreateManagedWidget("textWindow",asciiStringWidgetClass,parent,args,5);
- X
- X+ #if XtSpecificationRelease >= 4
- X+ XtOverrideTranslations(tw, XtParseTranslationTable(trans_2));
- X+ #endif
- X+
- X+ #ifdef SUNOS_4
- X+ XtOverrideTranslations(tw,
- X+ XtParseTranslationTable("#override None<Key>i: DoCmd(inc)"));
- X+ #endif
- X+
- X AddHelpText(tw, "text", Text_Help_Text);
- X+
- X+ for (indx = 0; HelpNames[indx]; indx++)
- X+ if (strcmp(HelpNames[indx], "text2") == 0) break;
- X+
- X+ if (HelpNames[indx]) {
- X+ XtSetArg(args[0], XtNstring, (XtArgVal) Text2_Help_Text);
- X+ XtSetArg(args[1], XtNlength, (XtArgVal) strlen(Text2_Help_Text));
- X+ XtSetArg(args[2], XtNeditType, (XtArgVal) XttextRead);
- X+
- X+ HelpStrings[indx] = XtStringSourceCreate(WidgetOf(WidgetOf(WidgetOf(toplevel,"topBox"),"help"),"helpWindow"),args,3);
- X+ }
- X } /* CreateTextWindow */
- X
- X
- X***************
- X*** 699,728 ****
- X {
- X Arg args[12];
- X Cardinal n;
- X
- X static String trans = "#override \
- X! <Key>Delete: delete-previous-character() beginning-of-line() end-of-line()\n\
- X! <Key>BackSpace: delete-previous-character() beginning-of-line() end-of-line()\n\
- X! Ctrl<Key>H: delete-previous-character() beginning-of-line() end-of-line()\n\
- X! Ctrl<Key>U: beginning-of-line() kill-to-end-of-line() \n\
- X! Ctrl<Key>W: delete-previous-word() beginning-of-line() end-of-line()\n\
- X! <Key>Return: NextField()";
- X
- X static String b_trans = "#override \
- X! <Btn3Down>: SetAliases() MenuPopup(aliasList)\n\
- X! <Btn3Motion>: DoNothing()\n\
- X! <Btn3Up>: DoNothing()\n\
- X! <Key>Delete: delete-previous-character() beginning-of-line() end-of-line()\n\
- X! <Key>BackSpace: delete-previous-character() beginning-of-line() end-of-line()\n\
- X! Ctrl<Key>H: delete-previous-character() beginning-of-line() end-of-line()\n\
- X! Ctrl<Key>U: beginning-of-line() kill-to-end-of-line() \n\
- X! Ctrl<Key>W: delete-previous-word() beginning-of-line() end-of-line()\n\
- X! <Key>Return: NextField()";
- X
- X n = XMail.shellWidth - 106; /* - (scn + 2*(internal width + def.dist.)) */
- X n -= TEXTWIDTH * 9 - 6; /* minus label text width less fudge factor */
- X XtSetArg(args[0], XtNwidth, n);
- X-
- X XtSetArg(args[1], XtNinput, True);
- X XtSetArg(args[2], XtNheight, XMail.buttonHeight);
- X XtSetArg(args[3], XtNfont, TextFontStr);
- X--- 853,876 ----
- X {
- X Arg args[12];
- X Cardinal n;
- X+ Widget w;
- X
- X static String trans = "#override \
- X! <Key>Delete: delete-previous-character() SavePos() beginning-of-file() SetPos()\n\
- X! <Key>BackSpace: delete-previous-character() SavePos() beginning-of-file() SetPos()\n\
- X! Ctrl<Key>H: delete-previous-character() SavePos() beginning-of-file() SetPos()\n\
- X! Ctrl<Key>U: beginning-of-line() kill-to-end-of-line() \n\
- X! Ctrl<Key>W: delete-previous-word() SavePos() beginning-of-file() SetPos()\n\
- X! <Key>Return: NextField()";
- X
- X static String b_trans = "#override \
- X! <Btn3Down>: SetAliases() MenuPopup(aliasList)\n\
- X! <Btn3Motion>: DoNothing()\n\
- X! <Btn3Up>: DoNothing()";
- X
- X n = XMail.shellWidth - 106; /* - (scn + 2*(internal width + def.dist.)) */
- X n -= TEXTWIDTH * 9 - 6; /* minus label text width less fudge factor */
- X XtSetArg(args[0], XtNwidth, n);
- X XtSetArg(args[1], XtNinput, True);
- X XtSetArg(args[2], XtNheight, XMail.buttonHeight);
- X XtSetArg(args[3], XtNfont, TextFontStr);
- X***************
- X*** 731,742 ****
- X XtSetArg(args[6], XtNlength, len);
- X XtSetArg(args[7], XtNeditType, (XtArgVal) XttextEdit);
- X XtSetArg(args[8], XtNtextOptions, wordBreak);
- X!
- X! if (strcmp(name, "Subject") == 0) {
- X! XtSetArg(args[9], XtNtranslations, XtParseTranslationTable(trans));
- X! } else {
- X! XtSetArg(args[9], XtNtranslations, XtParseTranslationTable(b_trans));
- X! }
- X n = 10;
- X
- X #if XtSpecificationRelease >= 4
- X--- 879,885 ----
- X XtSetArg(args[6], XtNlength, len);
- X XtSetArg(args[7], XtNeditType, (XtArgVal) XttextEdit);
- X XtSetArg(args[8], XtNtextOptions, wordBreak);
- X! XtSetArg(args[9], XtNtranslations, XtParseTranslationTable(trans));
- X n = 10;
- X
- X #if XtSpecificationRelease >= 4
- X***************
- X*** 743,747 ****
- X XtSetArg(args[n], XtNautoFill, True); n++;
- X #endif
- X
- X! return( XtCreateManagedWidget(name,asciiStringWidgetClass,parent,args,n) );
- X } /* CreateInputWindow */
- X--- 886,915 ----
- X XtSetArg(args[n], XtNautoFill, True); n++;
- X #endif
- X
- X! w = XtCreateManagedWidget(name, asciiStringWidgetClass, parent, args, n);
- X!
- X! if (strcmp(name, "Subject") != 0)
- X! XtOverrideTranslations(w, XtParseTranslationTable(b_trans));
- X!
- X! return( w );
- X } /* CreateInputWindow */
- X+
- X+ /*
- X+ ** @(#)ParseIconGeometry() - Parse the icon geometry
- X+ */
- X+ void
- X+ ParseIconGeometry(str, x, y)
- X+ char *str;
- X+ int *x, *y;
- X+ {
- X+ int res;
- X+ unsigned int w, h;
- X+
- X+ *x = 0;
- X+ *y = 0;
- X+ res = XParseGeometry(str, x, y, &w, &h);
- X+ if ((res & (XNegative|XValue)) == (XNegative|XValue))
- X+ *x = RootWidth + *x - mail_width;
- X+ if ((res & (YNegative|YValue)) == (YNegative|YValue))
- X+ *y = RootHeight + *y - mail_height;
- X+ } /* ParseIconGeometry */
- X*** ../v1.1/xmail.c Mon Jun 4 09:48:45 1990
- X--- xmail.c Mon Aug 27 11:09:22 1990
- X***************
- X*** 32,38 ****
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X! * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * The following software modules were created and are Copyrighted by National
- X--- 32,38 ----
- X * EVENT SHALL NATIONAL SEMICONDUCTOR CORPORATION BE LIABLE FOR ANY SPECIAL,
- X * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X! * OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X * PERFORMANCE OF THIS SOFTWARE.
- X *
- X * The following software modules were created and are Copyrighted by National
- X***************
- X*** 48,57 ****
- X #include "global.h"
- X #include "Mailwatch.h" /* use as icon and watch for newmail */
- X
- X! #if XtSpecificationRelease >= 4
- X! #include <X11/Xaw/CommandP.h>
- X #else
- X! #include <X11/CommandP.h>
- X #endif
- X
- X #include "icon.nomail" /* default icon pixmap source */
- X--- 48,57 ----
- X #include "global.h"
- X #include "Mailwatch.h" /* use as icon and watch for newmail */
- X
- X! #if XtSpecificationRelease < 4
- X! #include <X11/CommandP.h> /* R3 */
- X #else
- X! #include <X11/Xaw/CommandP.h> /* R4 */
- X #endif
- X
- X #include "icon.nomail" /* default icon pixmap source */
- X***************
- X*** 61,67 ****
- X #define Offset(field) (XtOffset(XmailResources *, field))
- X
- X static char what[] =
- X! "@(#)xmail.c 1.1 90/05/29 Copyright 1989 National Semiconductor Corp.";
- X
- X static XtResource resrcs[] = {
- X {XtNfont, XtCFont, XtRString, sizeof(char *),
- X--- 61,67 ----
- X #define Offset(field) (XtOffset(XmailResources *, field))
- X
- X static char what[] =
- X! "@(#)xmail.c 1.2 90/08/14 Copyright 1989, 1990 National Semiconductor Corp.";
- X
- X static XtResource resrcs[] = {
- X {XtNfont, XtCFont, XtRString, sizeof(char *),
- X***************
- X*** 72,81 ****
- X Offset(iconGeometry), XtRString, (caddr_t) NULL},
- X {"MFileName", "MFileName", XtRString, sizeof(char *),
- X Offset(MFileName), XtRString, (caddr_t) NULL},
- X- {"iconic", "Iconic", XtRBoolean, sizeof(Boolean),
- X- Offset(iconic), XtRImmediate, (caddr_t) False},
- X {"bellRing", "BellRing", XtRBoolean, sizeof(Boolean),
- X Offset(bellRing), XtRImmediate, (caddr_t) True},
- X {"mailopt_n", "Mailopt_n", XtRBoolean, sizeof(Boolean),
- X Offset(mailopt_n), XtRImmediate, (caddr_t) False},
- X {"mailopt_U", "Mailopt_U", XtRBoolean, sizeof(Boolean),
- X--- 72,83 ----
- X Offset(iconGeometry), XtRString, (caddr_t) NULL},
- X {"MFileName", "MFileName", XtRString, sizeof(char *),
- X Offset(MFileName), XtRString, (caddr_t) NULL},
- X {"bellRing", "BellRing", XtRBoolean, sizeof(Boolean),
- X Offset(bellRing), XtRImmediate, (caddr_t) True},
- X+ {"expert", "Expert", XtRBoolean, sizeof(Boolean),
- X+ Offset(expert), XtRImmediate, (caddr_t) False},
- X+ {"iconic", "Iconic", XtRBoolean, sizeof(Boolean),
- X+ Offset(iconic), XtRImmediate, (caddr_t) False},
- X {"mailopt_n", "Mailopt_n", XtRBoolean, sizeof(Boolean),
- X Offset(mailopt_n), XtRImmediate, (caddr_t) False},
- X {"mailopt_U", "Mailopt_U", XtRBoolean, sizeof(Boolean),
- X***************
- X*** 84,98 ****
- X Offset(Show_Last), XtRImmediate, (caddr_t) True},
- X };
- X
- X static XrmOptionDescRec Opts[] = {
- X! {"-helpfont", "*helpFont", XrmoptionSepArg, (caddr_t) NULL},
- X! {"-iconGeometry", "*iconGeometry", XrmoptionSepArg, (caddr_t) NULL},
- X! {"-iconic", "*iconic", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-f", "*MFileName", XrmoptionSepArg, (caddr_t) NULL},
- X! {"-nb", "*bellRing", XrmoptionNoArg, (caddr_t) "False"},
- X! {"-n", "*mailopt_n", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-U", "*mailopt_U", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-ls", "*Show_Last", XrmoptionNoArg, (caddr_t) "False"},
- X };
- X
- X char *IndexBuf; /* buffer for index widget */
- X--- 86,105 ----
- X Offset(Show_Last), XtRImmediate, (caddr_t) True},
- X };
- X
- X+ #undef Offset
- X+
- X static XrmOptionDescRec Opts[] = {
- X! {"-e", "expert", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-f", "MFileName", XrmoptionSepArg, (caddr_t) NULL},
- X! {"-helpfont", "helpFont", XrmoptionSepArg, (caddr_t) NULL},
- X! {"-iconGeometry", "iconGeometry", XrmoptionSepArg, (caddr_t) NULL},
- X! {"-iconic", "iconic", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-ls", "Show_Last", XrmoptionNoArg, (caddr_t) "False"},
- X! {"-nb", "bellRing", XrmoptionNoArg, (caddr_t) "False"},
- X! {"-n", "mailopt_n", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-U", "mailopt_U", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-u", "icon*useName", XrmoptionNoArg, (caddr_t) "True"},
- X! {"-rv", "icon*reverseVideo", XrmoptionNoArg, (caddr_t) "True"},
- X };
- X
- X char *IndexBuf; /* buffer for index widget */
- X***************
- X*** 105,111 ****
- X char BccBuf[BUFSIZ]; /* message Bcc list */
- X char tmpName[BUFSIZ]; /* message temporary filename */
- X char *MailPrompt; /* mail program prompt string */
- X! char *HelpNames[24]; /* array of help window names */
- X char **mailargv; /* array passed to mail child */
- X
- X int mailargc; /* counter passed to mail child */
- X--- 112,118 ----
- X char BccBuf[BUFSIZ]; /* message Bcc list */
- X char tmpName[BUFSIZ]; /* message temporary filename */
- X char *MailPrompt; /* mail program prompt string */
- X! char *HelpNames[25]; /* array of help window names */
- X char **mailargv; /* array passed to mail child */
- X
- X int mailargc; /* counter passed to mail child */
- X***************
- X*** 119,125 ****
- X Widget toplevel; /* top level shell widget */
- X
- X XmailResources XMail; /* application resources of xmail */
- X! XtTextSource HelpStrings[23];
- X XFontStruct *TextFontStr, *HelpFontStr;
- X
- X
- X--- 126,132 ----
- X Widget toplevel; /* top level shell widget */
- X
- X XmailResources XMail; /* application resources of xmail */
- X! XtTextSource HelpStrings[24];
- X XFontStruct *TextFontStr, *HelpFontStr;
- X
- X
- X***************
- X*** 173,181 ****
- X HelpNames[i++] = "read"; HelpNames[i++] = "reply";
- X HelpNames[i++] = "save"; HelpNames[i++] = "Send";
- X HelpNames[i++] = "status"; HelpNames[i++] = "Subject";
- X! HelpNames[i++] = "text"; HelpNames[i++] = "title";
- X! HelpNames[i++] = "To"; HelpNames[i++] = "Autograph";
- X! HelpNames[i] = NULL;
- X
- X strcpy(Command, "Start"); /* let parser know we've started */
- X Recipient[0] = SubjBuf[0] = CcBuf[0] = BccBuf[0] = '\0';
- X--- 180,188 ----
- X HelpNames[i++] = "read"; HelpNames[i++] = "reply";
- X HelpNames[i++] = "save"; HelpNames[i++] = "Send";
- X HelpNames[i++] = "status"; HelpNames[i++] = "Subject";
- X! HelpNames[i++] = "text"; HelpNames[i++] = "text2";
- X! HelpNames[i++] = "title"; HelpNames[i++] = "To";
- X! HelpNames[i++] = "Autograph"; HelpNames[i] = NULL;
- X
- X strcpy(Command, "Start"); /* let parser know we've started */
- X Recipient[0] = SubjBuf[0] = CcBuf[0] = BccBuf[0] = '\0';
- X***************
- X*** 232,238 ****
- X XMail.buttonHeight = TEXTHEIGHT + (TextFontStr->ascent / 2);
- X XMail.buttonWidth = XTextWidth(TextFontStr, " Newmail ", 9);
- X buttonSpace = XMail.buttonWidth + XMail.commandHSpace + 2;
- X! XMail.shellWidth = (8 * buttonSpace) + 24; /* 8 buttons per row */
- X XMail.fileBoxWidth = (4 * buttonSpace) + XMail.buttonWidth + 2;
- X XMail.helpHeight = HELPHEIGHT * 14; /* 14 lines by 60 chars */
- X XMail.helpWidth = XTextWidth(HelpFontStr, "X11Windows", 10) * 6;
- X--- 239,245 ----
- X XMail.buttonHeight = TEXTHEIGHT + (TextFontStr->ascent / 2);
- X XMail.buttonWidth = XTextWidth(TextFontStr, " Newmail ", 9);
- X buttonSpace = XMail.buttonWidth + XMail.commandHSpace + 2;
- X! XMail.shellWidth = (8 * buttonSpace) + 26; /* 8 buttons per row */
- X XMail.fileBoxWidth = (4 * buttonSpace) + XMail.buttonWidth + 2;
- X XMail.helpHeight = HELPHEIGHT * 14; /* 14 lines by 60 chars */
- X XMail.helpWidth = XTextWidth(HelpFontStr, "X11Windows", 10) * 6;
- X***************
- X*** 258,264 ****
- X Display *dpy;
- X XSizeHints size_hints;
- X XWMHints wm_hints;
- X! int scn, depth, x, y, width, height;
- X CommandWidget nm = (CommandWidget)WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"), "commandPanel"), "Newmail");
- X
- X
- X--- 265,271 ----
- X Display *dpy;
- X XSizeHints size_hints;
- X XWMHints wm_hints;
- X! int scn, depth, x, y;
- X CommandWidget nm = (CommandWidget)WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"), "commandPanel"), "Newmail");
- X
- X
- X***************
- X*** 276,301 ****
- X /*
- X ** Notify the window manager about our icon window
- X */
- X! wm_hints.input = True;
- X
- X! wm_hints.initial_state = (XMail.iconic) ? IconicState : NormalState;
- X
- X- x = RootWidth - 58; /* provide some reasonable defaults */
- X- y = 83; /* slightly down the right side top */
- X- if (XMail.iconGeometry)
- X- XParseGeometry(XMail.iconGeometry, &x, &y, &width, &height);
- X-
- X- wm_hints.icon_x = x;
- X- wm_hints.icon_y = y;
- X-
- X- wm_hints.flags = InputHint | StateHint | IconPositionHint;
- X-
- X #ifndef PIXMAP_ICON
- X! wm_hints.flags |= IconWindowHint;
- X! wm_hints.icon_window = XtWindow(XtNameToWidget(toplevel, "icon"));
- X #else
- X! wm_hints.flags |= IconPixmapHint;
- X! wm_hints.icon_pixmap = XCreateBitmapFromData(dpy, XtScreen(toplevel)->root,
- X no_mail_bits, no_mail_width, no_mail_height);
- X #endif
- X
- X--- 283,305 ----
- X /*
- X ** Notify the window manager about our icon window
- X */
- X! wm_hints.input = True;
- X! wm_hints.initial_state = (XMail.iconic) ? IconicState : NormalState;
- X! wm_hints.flags = InputHint | StateHint;
- X
- X! if (XMail.iconGeometry) {
- X! ParseIconGeometry(XMail.iconGeometry, &x, &y);
- X! wm_hints.icon_x = x;
- X! wm_hints.icon_y = y;
- X! wm_hints.flags |= IconPositionHint;
- X! }
- X
- X #ifndef PIXMAP_ICON
- X! wm_hints.flags |= IconWindowHint;
- X! wm_hints.icon_window = XtWindow(XtNameToWidget(toplevel, "icon"));
- X #else
- X! wm_hints.flags |= IconPixmapHint;
- X! wm_hints.icon_pixmap = XCreateBitmapFromData(dpy, XtScreen(toplevel)->root,
- X no_mail_bits, no_mail_width, no_mail_height);
- X #endif
- X
- X***************
- X*** 350,355 ****
- X--- 354,361 ----
- X SetHints();
- X
- X callMail(mailargc, mailargv);
- X+
- X+ XSync(XtDisplay(toplevel), False);
- X
- X XtMainLoop();
- X } /* main */
- X*** ../v1.1/xmail.man Mon Jun 4 09:48:46 1990
- X--- xmail.man Mon Aug 27 11:09:22 1990
- X***************
- X*** 1,5 ****
- X .\"
- X! .\" @(#)xmail.l 1.1 90/05/29 NSC;
- X .\"
- X .\" Copyright 1990 by National Semiconductor Corporation.
- X .\"
- X--- 1,5 ----
- X .\"
- X! .\" @(#)xmail.l 1.2 90/09/14 NSC;
- X .\"
- X .\" Copyright 1990 by National Semiconductor Corporation.
- X .\"
- X***************
- X*** 30,36 ****
- X .if t .ds Q ``
- X .if t .ds U ''
- X .\"
- X! .TH XMAIL 1 "May 29, 1990" "NSC"
- X .SH NAME
- X xmail \- X11 visual interface to the mail program
- X .SH SYNOPSIS
- X--- 30,36 ----
- X .if t .ds Q ``
- X .if t .ds U ''
- X .\"
- X! .TH XMAIL 1 "August 14, 1990" "NSC"
- X .SH NAME
- X xmail \- X11 visual interface to the mail program
- X .SH SYNOPSIS
- X***************
- X*** 68,77 ****
- X \*(xM also accepts the following additional options:
- X .RS
- X .TP
- X! \fB-iconGeometry \fI+XOff+YOff\fR
- X provides a command line option for specifying the preferred geometry
- X location for the \*(xM icon window. This overrides any \*(xM resource
- X! specification for \*Q\fB*iconGeometry: \fI+XOff+YOff\fR\*U.
- X .TP
- X \fB\-nb\fR
- X tells \*(xM to \fBnot\fR ring the terminal bell when issuing status and
- X--- 68,83 ----
- X \*(xM also accepts the following additional options:
- X .RS
- X .TP
- X! \fB\-e\fR
- X! Sets the \*(xM resource specification \*Q\fB*expert: \fITrue\fR\*U. This
- X! resource determines whether \*Q\fBconfirm\fR\*U popups will be presented
- X! when commiting changes to a folder or deleting a new message composition.
- X! By default the resource is False, which means confirm popups will be used.
- X! .TP
- X! \fB-iconGeometry \fI[+-]XOff[+-]YOff\fR
- X provides a command line option for specifying the preferred geometry
- X location for the \*(xM icon window. This overrides any \*(xM resource
- X! specification for \*Q\fB*iconGeometry: \fI[+-]XOff[+-]YOff\fR\*U.
- X .TP
- X \fB\-nb\fR
- X tells \*(xM to \fBnot\fR ring the terminal bell when issuing status and
- X***************
- X*** 89,94 ****
- X--- 95,110 ----
- X The option can also be specified as an \*(xM resource
- X using the specification \*Q\fB*mailopt_n: \fITrue\fR\*U.
- X .TP
- X+ \fB\-rv\fR
- X+ tells \*(xM to reverse the foreground and background colors of the icon
- X+ window when displaying the icon. The option can also be specified as an
- X+ \*(xM resource using the specification \*Q\fB*icon*reverseVideo: \fITrue\fR\*U.
- X+ .TP
- X+ \fB\-u\fR
- X+ tells \*(xM to include the user login name in the icon window when displaying
- X+ the icon. The option can also be specified as an \*(xM resource
- X+ using the specification \*Q\fB*icon*useName: \fITrue\fR\*U.
- X+ .TP
- X \fB\-U\fR
- X tells Mail to convert internet style addresses into uucp format.
- X This option also is a Mail option, passed on to it during startup.
- X***************
- X*** 116,125 ****
- X
- X Immediately below the title bar, an index window
- X displays header information for the current mail folder. Message selection
- X! is indicated by highlight of the number of a particular message.
- X New and unread mail are prefixed with 'N' and 'U' characters. Deleted
- X messages not yet removed from the index list have the letter 'D' preceding
- X! the message number.
- X
- X Below the index
- X window, a status window displays status and error messages. The terminal
- X--- 132,143 ----
- X
- X Immediately below the title bar, an index window
- X displays header information for the current mail folder. Message selection
- X! is indicated by a \fIgreater-than\fR symbol '>' prefix to the number of a
- X! particular message.
- X New and unread mail are prefixed with 'N' and 'U' characters. Deleted
- X messages not yet removed from the index list have the letter 'D' preceding
- X! the message number. Keyboard keys can be used to scroll the index window,
- X! in addition to the more traditional mouse on scrollbar mechanism.
- X
- X Below the index
- X window, a status window displays status and error messages. The terminal
- X***************
- X*** 151,157 ****
- X
- X Message text is displayed in the bottom window of the \*(xM shell.
- X Like the index window above, scroll bars provide easy access to any portion of
- X! the text. Because the reading of a very large message can take more than a few
- X moments, \*(xM decides when starting Mail or changing folders that a
- X message longer
- X than 65,000 characters will \fBnot\fR be automatically displayed.
- X--- 169,178 ----
- X
- X Message text is displayed in the bottom window of the \*(xM shell.
- X Like the index window above, scroll bars provide easy access to any portion of
- X! the text. Keyboard keys can also be used to scroll the text window.
- X! In addition, the text window has keyboard definitions to supplant using the
- X! mouse on the command buttons for normal \*(xM command operation.
- X! Because the reading of a very large message can take more than a few
- X moments, \*(xM decides when starting Mail or changing folders that a
- X message longer
- X than 65,000 characters will \fBnot\fR be automatically displayed.
- X***************
- X*** 251,259 ****
- X Users may append their \fISign\fP or \fIsign\fP autograph (see \fBMail(1)\fR)
- X once only to the end of the message text.
- X Pressing the \fIDeliver\fR button causes the message
- X! to be delivered, while the right mouse button displays a menu for the Deliver,
- X! \fICancel\fR (and delete), and Cancel (and save in your dead.letter file)
- X! commands.
- X
- X Mail forwarded to another user will be bracketed by a \*Q\fIBegin Forwarded
- X Message/End Forwarded Message\fR\*U string
- X--- 272,280 ----
- X Users may append their \fISign\fP or \fIsign\fP autograph (see \fBMail(1)\fR)
- X once only to the end of the message text.
- X Pressing the \fIDeliver\fR button causes the message
- X! to be delivered, while the right mouse button displays a menu for \fIDeliver,
- X! ReEdit, Cancel\fR (and delete), and \fICancel\fR (and save in your dead.letter
- X! file) commands.
- X
- X Mail forwarded to another user will be bracketed by a \*Q\fIBegin Forwarded
- X Message/End Forwarded Message\fR\*U string
- X***************
- X*** 267,273 ****
- X received.
- X .SH FOLDERS
- X If the right mouse button is pressed while the cursor is within the
- X! command panel \fBfolder\fR button, \*(xM will display a menu of available
- X mail folders.
- X Dragging the cursor while still holding the right mouse button down will allow
- X the user to highlight a particular folder name. Releasing the right button
- X--- 288,294 ----
- X received.
- X .SH FOLDERS
- X If the right mouse button is pressed while the cursor is within the
- X! command panel \fBFolder\fR button, \*(xM will display a menu of available
- X mail folders.
- X Dragging the cursor while still holding the right mouse button down will allow
- X the user to highlight a particular folder name. Releasing the right button
- X***************
- X*** 292,301 ****
- X
- X The first request for the folder menu extracts (from Mail or the system) the
- X necessary information to create the menu. Subsequent requests simply redisplay
- X! that menu. To force \*(xM to recalculate the folder menu content, press
- X! the \fBNewmail\fR button, which causes \*(xM to destroy the current folder
- X! menu and re-display your system mail folder.
- X! This provides access to folders created after the start of \*(xM.
- X .SH FONTS
- X \*(xM now supports a wider variety of font styles, such as \fICourier\fR and
- X \fInew century schoolbook\fR.
- X--- 313,325 ----
- X
- X The first request for the folder menu extracts (from Mail or the system) the
- X necessary information to create the menu. Subsequent requests simply redisplay
- X! that menu. To force \*(xM to recalculate the folder menu content, use the
- X! \fBNewmail\fR button option which causes \*(xM to destroy the current folder
- X! menu. This provides for access to folders created after the start of \*(xM.
- X! Pressing the right mouse button
- X! on the Newmail command box will present the Newmail command menu, which has a
- X! choice to drop the current folder list. This same option is also available
- X! using the accelerator key and the left mouse button on the Newmail command box.
- X .SH FONTS
- X \*(xM now supports a wider variety of font styles, such as \fICourier\fR and
- X \fInew century schoolbook\fR.
- X***************
- X*** 337,343 ****
- X the following additional resource names are recognized:
- X .RS
- X .TP 3
- X! \fB\&.geometry: \fI+XOff+YOff\fR
- X This resource defines the initial startup location for the \*(xM window.
- X Note the dot (.) just in front of the geometry resource name.
- X Users are cautioned to \fBnot\fR specify this resource with the
- X--- 361,367 ----
- X the following additional resource names are recognized:
- X .RS
- X .TP 3
- X! \fB\&.geometry: \fI[+-]XOff[+-]YOff\fR
- X This resource defines the initial startup location for the \*(xM window.
- X Note the dot (.) just in front of the geometry resource name.
- X Users are cautioned to \fBnot\fR specify this resource with the
- X***************
- X*** 345,350 ****
- X--- 369,384 ----
- X and send/reply) to orient to that same starting location, rather than be
- X anchored to the intended window.
- X .TP 3
- X+ \fB*expert: \fI<boolean>\fR
- X+ This boolean defines whether the \*(xM user requires confirmation of
- X+ folder commits or composed message deletions. Whenever an action
- X+ would make a permanent un-recoverable change to the \*(xM environment, a
- X+ popup confirmation window will be presented for the user, to assure that
- X+ the action should take place. These confirmations include changing a
- X+ folder when deletions have occurred, or deleting the text of a newly
- X+ composed message instead of sending it. Setting this resource to True
- X+ eliminates those confirmation popups.
- X+ .TP 3
- X \fB*iconic: \fI<boolean>\fR
- X This boolean defines whether the \*(xM application should be started in
- X iconic state or not. It is highly recommended that only the application
- X***************
- X*** 353,359 ****
- X message entry windows to be started iconic, which could prove confusing
- X to the unaware user.
- X .TP 3
- X! \fB*iconGeometry: \fI+XOff+YOff\fR
- X This resource defines an initial location for the icon, whenever the
- X \*(xM application is iconified.
- X .TP 3
- X--- 387,393 ----
- X message entry windows to be started iconic, which could prove confusing
- X to the unaware user.
- X .TP 3
- X! \fB*iconGeometry: \fI[+-]XOff[+-]YOff\fR
- X This resource defines an initial location for the icon, whenever the
- X \*(xM application is iconified.
- X .TP 3
- X***************
- X*** 383,392 ****
- X .TP 3
- X \fB*icon\fR
- X controls resources for the \fIicon\fR window. In addition to
- X! specifications of foreground and background colors, it is possible
- X! to also specify mailWatch widget resources, such as the following:
- X .RS
- X .TP 3
- X \fB*icon*reverseVideo: \fI<boolean>\fR
- X If set to true, reverses the foreground and background colors for the icon.
- X .TP 3
- X--- 417,430 ----
- X .TP 3
- X \fB*icon\fR
- X controls resources for the \fIicon\fR window. In addition to
- X! specifications of foreground and background colors, it is also possible
- X! to specify the following mailWatch widget resources :
- X .RS
- X .TP 3
- X+ \fB*icon*useName: \fI<Boolean>\fR
- X+ If set to true, tells \*(xM to include the user login name in the icon window
- X+ when displaying the icon.
- X+ .TP 3
- X \fB*icon*reverseVideo: \fI<boolean>\fR
- X If set to true, reverses the foreground and background colors for the icon.
- X .TP 3
- X***************
- X*** 442,447 ****
- X--- 480,556 ----
- X file \fB/usr/lib/X11/app-defaults/XMail\fR. User's may wish to include
- X appropriate alternate definitions in their ~/.Xdefaults file, to tailor
- X preferences for colors and/or fonts.
- X+ .SH "KEYBOARD ACCELERATORS"
- X+ The index and text windows support two methods of scrolling displayable
- X+ text. The use of the mouse buttons in the scrollbar region is standard.
- X+ In addition, keyboard keys have been defined in keeping with conventions
- X+ used in text display programs such as \*Qmore\*U and \*Qless\*U.
- X+
- X+ The following table lists the key definitions and their respective actions.
- X+ The abbreviation \*QCtrl\*U means to press down and hold the \fBControl\fR
- X+ key while pressing the specified letter key. \*QMeta\*U likewise refers
- X+ to the \fBmeta\fR keys (\fIlabeled \*QLeft\*U and \*QRight\*U on some
- X+ Sun keyboards\fR).
- X+ .sp
- X+ .RS
- X+ .nf
- X+ Key Name Action Taken
- X+ -------- -----------------------------
- X+ Ctrl V move to the next page
- X+ space move to the next page
- X+ Meta V move to the previous page
- X+ b move to the previous page
- X+ Ctrl Z scroll one line up
- X+ Return scroll one line up
- X+ j scroll one line up
- X+ Meta Z scroll one line down
- X+ k scroll one line down
- X+ - scroll one line down
- X+ \' move to the beginning of file
- X+ Meta < move to the beginning of file
- X+ Meta > move to the end of file
- X+ Shift G move to the end of file
- X+ .fi
- X+ .RE
- X+ .sp
- X+ .LP
- X+ In addition to the scroll key definitions, the \fItext\fR window also supports
- X+ keyboard accelerators for most of the command buttons. Where possible,
- X+ these keyboard keys replicate the actual commands that would be typed
- X+ if the user were running the native mail program. Thus, to begin
- X+ sending a mail message to some recipient, the user could press the \*Qm\*U key,
- X+ and to delete a current message, the user could press the \*Qd\*U key.
- X+ .sp
- X+ .RS
- X+ .nf
- X+ Key Name Command Action Taken
- X+ -------- -----------------------------
- X+ Shift A reply to all, include the current message
- X+ Shift C copy the message to the author's name
- X+ Shift F forward the current mail message
- X+ Shift M reply to a mail message
- X+ Shift N bring new mail into your system folder
- X+ Shift P send the current message to the printer
- X+ Shift R include the current message in a reply
- X+ Shift S save the message to the author's name
- X+ a reply to all recipients of a message
- X+ c copy the message to the indicated folder
- X+ d delete the current message
- X+ f read the full header of the message
- X+ i incorporate new mail without commit
- X+ m mail (compose) a new mail message
- X+ n read the next mail message
- X+ p read the previous mail message
- X+ q quit xmail, committing any changes
- X+ r read the current mail message
- X+ s save current message in specified folder
- X+ u undelete the most recently deleted message
- X+ w writes the message to the indicated file
- X+ x exit xmail, without committing changes
- X+ ? displays help for these key definitions
- X+ <LF> removes help for these key definitions
- X+ .fi
- X+ .RE
- X .SH "ENVIRONMENT"
- X Several process environment variables are of potential interest to \*(xM.
- X .sp
- X***************
- X*** 482,488 ****
- X path of the process (assumed to be at least \*Q/bin /usr/bin /usr/ucb\*U).
- X If need be, the XMAILER
- X environment variable can be used to provide a specific path to the Mail
- X! program. Note: \*(xM will not work correctly with any mail program
- END_OF_FILE
- if test 52848 -ne `wc -c <'Patch.02d'`; then
- echo shar: \"'Patch.02d'\" unpacked with wrong size!
- fi
- # end of 'Patch.02d'
- fi
- echo shar: End of archive 4 \(of 5\).
- cp /dev/null ark4isdone
- MISSING=""
- for I in 1 2 3 4 5 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 5 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- dan
- ----------------------------------------------------
- O'Reilly && Associates argv@sun.com / argv@ora.com
- Opinions expressed reflect those of the author only.
-